package issr.entity;
// Generated 27-set-2012 19.32.49 by Hibernate Tools 3.2.1.GA

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Utente generated by hbm2java
 */
@Entity
@Table(name = "utente", catalog = "issr", uniqueConstraints =
@UniqueConstraint(columnNames = "login"))
public class Utente implements java.io.Serializable {

    private Integer id;
    private Puntovendita puntovendita;
    private Ruolo ruolo;
    private String login;
    private String password;
    private String nome;
    private String cognome;
    private String email;
    private String cellulare;
    private Date registrazione;

    public Utente() {
    }

    public Utente(Ruolo ruolo, String login, String password, String nome, String cognome, Date registrazione) {
        this.ruolo = ruolo;
        this.login = login;
        this.password = password;
        this.nome = nome;
        this.cognome = cognome;
        this.registrazione = registrazione;
    }

    public Utente(Ruolo ruolo, String login, String password, String nome, String cognome, String email, String cellulare, Date registrazione) {
        this.ruolo = ruolo;
        this.login = login;
        this.password = password;
        this.nome = nome;
        this.cognome = cognome;
        this.email = email;
        this.cellulare = cellulare;
        this.registrazione = registrazione;
    }

    public Utente(Puntovendita puntovendita, Ruolo ruolo, String login, String password, String nome, String cognome, String email, String cellulare, Date registrazione) {
        this.puntovendita = puntovendita;
        this.ruolo = ruolo;
        this.login = login;
        this.password = password;
        this.nome = nome;
        this.cognome = cognome;
        this.email = email;
        this.cellulare = cellulare;
        this.registrazione = registrazione;
    }

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "pv")
    public Puntovendita getPuntovendita() {
        return this.puntovendita;
    }

    public void setPuntovendita(Puntovendita puntovendita) {
        this.puntovendita = puntovendita;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ruolo", nullable = false)
    public Ruolo getRuolo() {
        return this.ruolo;
    }

    public void setRuolo(Ruolo ruolo) {
        this.ruolo = ruolo;
    }

    @Column(name = "login", unique = true, nullable = false, length = 30)
    public String getLogin() {
        return this.login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    @Column(name = "password", nullable = false, length = 30)
    public String getPassword() {
        return this.password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Column(name = "nome", nullable = false, length = 30)
    public String getNome() {
        return this.nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    @Column(name = "cognome", nullable = false, length = 30)
    public String getCognome() {
        return this.cognome;
    }

    public void setCognome(String cognome) {
        this.cognome = cognome;
    }

    @Column(name = "email", length = 30)
    public String getEmail() {
        return this.email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Column(name = "cellulare", length = 30)
    public String getCellulare() {
        return this.cellulare;
    }

    public void setCellulare(String cellulare) {
        this.cellulare = cellulare;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "registrazione", nullable = false, length = 19)
    public Date getRegistrazione() {
        return this.registrazione;
    }

    public void setRegistrazione(Date registrazione) {
        this.registrazione = registrazione;
    }
    
    @Override
    public String toString() {
        return this.nome + " " + this.cognome + " (" + this.login + ")";
    }
}
